import myAxios from "@/utils/myAxios"
import userStore from "@/store/user"

const BaseUrl = '/api/user'

/**
 * 登录服务
 * @param phone 手机号
 * @param password 账户密码
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function login(phone, password) {
    return myAxios.post(`${BaseUrl}/login`, {
        phone: phone, // 手机号
        password: password // 密码
    })
}

/**
 * 注册
 * @param phone 手机号
 * @param password 账户密码
 * @param verifyPassword 确认密码
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function register(phone, password, verifyPassword) {
    return myAxios.post(`${BaseUrl}/register`, {
        phone: phone, // 手机号
        password: password, // 密码
        verifyPassword: verifyPassword // 确认密码
    })
}

/**
 * 获取登录用户信息
 * @returns {Promise<AxiosResponse<any>>}
 */
export async function getInfo() {
    return myAxios.get(`${BaseUrl}/info`, {
        headers: {
            Authorization: "Bearer " + userStore.state.token,
        }
    })
}

/**
 * 编辑用户信息
 * @param editKey
 * @param editValue
 * @returns {Promise<AxiosResponse<any>>}
 */
export async function updateUserInfo(editKey, editValue) {
    return myAxios.post(`${BaseUrl}/update/${editKey}/${editValue}`, {}, {
        headers: {
            Authorization: "Bearer " + userStore.state.token,
        }
    })
}

/**
 * 退出登录（退出登录必须携带token，因为要通过token获取到用户id从而删除redis中数据）
 */
export async function logout() {
    return myAxios.get(`${BaseUrl}/logout`, {
        headers: {
            Authorization: "Bearer " + userStore.state.token,
        }
    })
}
